var addAction = Ext.create('Ext.Action', {
    id: 'add_action',
    iconCls: 'add_icon',
    handler: function (widget, event) {
        var currentNode = Ext.getCmp('tree').getSelectionModel().getSelection()[0];
        addElement(this, currentNode);
    }
});

var modAction = Ext.create('Ext.Action', {
    id: 'mod_action',
    iconCls: 'mod_icon',
    handler: function (widget, event) {
        var currentNode = Ext.getCmp('tree').getSelectionModel().getSelection()[0];
        modElement(this, currentNode);
    }
});

var deleteAction = Ext.create('Ext.Action', {
    id: 'del_action',
    iconCls: 'del_icon',
    handler: function (widget, event) {
        var currentNode = Ext.getCmp('tree').getSelectionModel().getSelection()[0];
        Ext.MessageBox.confirm('ПОДТВЕРЖДЕНИЕ', 'Удалить ' + currentNode.get('text') + '?', delElement);
    }
});

var contextMenu = Ext.create('Ext.menu.Menu', {
    id: 'contextMenu',
    items: [ addAction, '-', modAction, '-', deleteAction ]
});

var renderContextMenu = function (view, rec, node, index, e) {
    var contextMenu = this.contextMenu;
    var addMenuItem = contextMenu.getComponent('add_action');
    var modMenuItem = contextMenu.getComponent('mod_action');
    var delMenuItem = contextMenu.getComponent('del_action');

    if (rec.get('id').match(/Root/)) {
        addMenuItem.setText('Добавить подразделение');
        addMenuItem.show();
        contextMenu.items.get(1).hide();
        modMenuItem.hide();
        contextMenu.items.get(3).hide();
        delMenuItem.hide();

    } else if (rec.get('id').match(/Div_\d*/)) {
        addMenuItem.setText('Добавить проект');
        addMenuItem.show();
        contextMenu.items.get(1).show();
        modMenuItem.setText('Редактировать подразделение');
        modMenuItem.show();
        contextMenu.items.get(3).show();
        delMenuItem.setText('Удалить подразделение');
        delMenuItem.show();

    } else if (rec.get('id').match(/Proj_\d*/)) {
        addMenuItem.setText('Добавить сотрудника');
        addMenuItem.show();
        contextMenu.items.get(1).show();
        modMenuItem.setText('Редактировать проект');
        modMenuItem.show();
        contextMenu.items.get(3).show();
        delMenuItem.setText('Удалить проект');
        delMenuItem.show();

    } else if (rec.get('id').match(/Emp_\d*/)) {
        addMenuItem.hide();
        contextMenu.items.get(1).hide();
        modMenuItem.setText('Редактировать сотрудника');
        modMenuItem.show();
        contextMenu.items.get(3).show();
        delMenuItem.setText('Удалить сотрудника');
        delMenuItem.show();
    }

    contextMenu.showAt(e.getXY());
}